﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using VisaServ.Dominio;
using VisaServ.Persistencia;

namespace VisaServ
{
    // NOTA: puede usar el comando "Rename" del menú "Refactorizar" para cambiar el nombre de clase "VisaServices" en el código, en svc y en el archivo de configuración a la vez.
    public class VisaServices : IVisaServices
    {

        private VisaDAO visaDAO = null;
        private VisaDAO VisaDAO
        {
            get
            {
                if (visaDAO == null)
                    visaDAO = new VisaDAO();
                return visaDAO;
            }
        }

        public Visa Valida(Visa visaAValidar)
        {
            Visa visaBuscado = VisaDAO.Obtener(visaAValidar.NroTarjeta);

            decimal saldo = visaBuscado.Monto - visaAValidar.Monto;

            if (saldo < 0)
            {
                visaAValidar.Estado = "Rechazado";
            }
            else
            {
                VisaDAO.updateMonto(visaBuscado.NroTarjeta, saldo);
                visaAValidar.Estado = "Validado";
            }

            return visaAValidar;
        }



        public Visa ValidarNroTarjeta(string NroTarjeta)
        {
            return VisaDAO.Obtener(NroTarjeta);
        }
    }
}
